import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {//存储数据用的
    token: localStorage.getItem("token") || ''
  },
  mutations: {//同步修改states里的值
    SET_TOKEN: (state, token) => {
      state.token = token
    }
  },
  actions: {//异步调用mutations里的方法
    //context.commit 利用上下文出发mutations某个方法
    //vue代码里面 this.$store.dispatch触发action里定义的方法
    setToken(context, token) {
      context.commit('SET_TOKEN', token)//通过commit传入方法名和参数，来完成调用操作
    },
    clearToken(context) {
      context.commit('SET_TOKEN', '')
    }
  },
  modules: {
  }
})
